package sy.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
	public static void main(String[] args){
		System.out.println(getCurrentDateFirstTime());
		System.out.println(getCurrentDateLastTime());
	}
	/**
	 * 计算相差多少分钟
	 * @Title: differTime
	 * @Description: TODO
	 * @param: @param dateStr
	 * @param: @param dateStr2
	 * @param: @return
	 * @param: @throws ParseException     
	 * @return: long     
	 * @author:  xieyuanqiu
	 * @date: 2017年8月28日 下午2:20:18
	 * @throws
	 */
	public static long differTime(String dateStr, String dateStr2) throws ParseException{
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date1 = sdf.parse(dateStr);
		Date date2 = sdf.parse(dateStr2);
		long l = date2.getTime() - date1.getTime();  
		long d = l/(60*1000);  
		return d;  
	} 
	/**
	 * 计算相差几天
	 * @Title: differDay
	 * @Description: TODO
	 * @param: @param dateStr
	 * @param: @param dateStr2
	 * @param: @return
	 * @param: @throws ParseException     
	 * @return: long     
	 * @author:  xieyuanqiu
	 * @date: 2017年8月28日 下午2:24:37
	 * @throws
	 */
	public static long differDay(String dateStr, String dateStr2) throws ParseException{
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date1 = sdf.parse(dateStr);
		Date date2 = sdf.parse(dateStr2);
		long l = date2.getTime() - date1.getTime();  
		long d = l/(24*60*60*1000);  
		return d;  
	}
	/**
	 * 计算相差几小时
	 * @Title: differHour
	 * @Description: TODO
	 * @param: @param dateStr
	 * @param: @param dateStr2
	 * @param: @return
	 * @param: @throws ParseException     
	 * @return: long     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月20日 上午10:23:53
	 * @throws
	 */
	public static long differHour(String dateStr, String dateStr2) throws ParseException{
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date1 = sdf.parse(dateStr);
		Date date2 = sdf.parse(dateStr2);
		long l = date2.getTime() - date1.getTime();  
		long d = l/(60*60*1000);  
		return d;  
	}
	/**
	 * 
	 * @Title: formatDate
	 * @Description: TODO
	 * @param: @param dateStr
	 * @param: @return     
	 * @return: Date     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月25日 上午11:03:27
	 * @throws
	 */
	public static Date formatDate(String dateStr){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = null;
		try {
			date = sdf.parse(dateStr);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return date;
	}
	/**
	 * 
	 * @Title: formatDateYMD
	 * @Description: TODO
	 * @param: @param dateStr
	 * @param: @return     
	 * @return: String     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月25日 上午11:03:20
	 * @throws
	 */
	public static String formatDateYMD(String dateStr){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Date date = null;
		try {
			date = sdf.parse(dateStr);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String str = sdf.format(date);
		return str;
	}
	/**
	 * 
	 * @Title: getTimeByHour
	 * @Description: TODO
	 * @param: @param calendar
	 * @param: @param hour
	 * @param: @return     
	 * @return: Date     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月25日 上午11:03:14
	 * @throws
	 */
	public static Date getTimeByHour(Calendar calendar, int hour) {
        calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hour);
        return calendar.getTime();

    }
	/**
	 * 获取当天的最开始时间
	 * @Title: getCurrentDateFirstTime
	 * @Description: TODO
	 * @param: @return     
	 * @return: String     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月25日 上午11:16:50
	 * @throws
	 */
	public static String getCurrentDateFirstTime(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd 00:00:00");
		String str = sdf.format(new Date());
		return str;
	}
	/**
	 * 获取当天最后的时间
	 * @Title: getCurrentDateLastTime
	 * @Description: TODO
	 * @param: @return     
	 * @return: String     
	 * @author:  xieyuanqiu
	 * @date: 2017年9月25日 上午11:17:08
	 * @throws
	 */
	public static String getCurrentDateLastTime(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd 23:59:59");
		String str = sdf.format(new Date());
		return str;
	}
	
	public static String getCurrentDate(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		String str = sdf.format(new Date());
		return str;
	}
	
	public static Date getCurrentDateDate(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		String str = sdf.format(new Date());
		try {
			return sdf.parse(str);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	public static String getCurrentDateTimeString(){
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = sdf.format(new Date());
		return str;
	}
}
